home *** CD-ROM | disk | FTP | other *** search
/ Greenhouse Effect Detection Expriment / NASA Greenhouse Effect Detection Expriment 1992 - Disc 2.iso / software / dos / cdf22pc / src / tools / wentryv.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-02-26  |  1.4 KB  |  63 lines

  1. /******************************************************************************
  2. *
  3. *  NSSDC/CDF                         Write an entry value(s).
  4. *
  5. *  Version 1.0, 26-Feb-92, Hughes STX
  6. *
  7. *  Modification history:
  8. *
  9. *   V1.0  26-Feb-92, J Love       Original version.
  10. *
  11. ******************************************************************************/
  12.  
  13. #include "cdfdist.h"
  14.  
  15. /******************************************************************************
  16. * WriteEntryValue.
  17. ******************************************************************************/
  18.  
  19. void WriteEntryValue (fp, dataType, numElements, value, ccc, MaXcc)
  20. FILE *fp;
  21. long dataType;
  22. long numElements;
  23. void *value;
  24. int ccc;
  25. int MaXcc;
  26. {
  27. switch (dataType) {
  28.   case CDF_CHAR:
  29.   case CDF_UCHAR:
  30.     WriteStringValue (fp, numElements, value, ccc, MaXcc);
  31.     break;
  32.  
  33.   default: {
  34.     int elemN, n;
  35.     char evalue[80+1];
  36.     int cccBase = ccc;
  37.     Boolean newLine = TRUE;
  38.  
  39.     for (elemN = 0; elemN < numElements; elemN++) {
  40.        n = EncodeValue (dataType, (Byte *) value + elemN*ElemSize(dataType),
  41.             evalue);
  42.  
  43.        if (ccc + (newLine ? 0 : 1) + n +
  44.        (elemN != numElements - 1 ? 1 : 0) > MaXcc) {
  45.      fprintf (fp, "\n");
  46.      nCHARACTERS (fp, cccBase, ' ');
  47.      ccc = cccBase;
  48.      newLine = TRUE;
  49.        }
  50.  
  51.        if (!newLine) ccc += fprintf (fp, " ");
  52.        ccc += fprintf (fp, "%s", evalue);
  53.        if (elemN != numElements - 1) ccc += fprintf (fp, ",");
  54.        newLine = FALSE;
  55.     }
  56.  
  57.     break;
  58.   }
  59. }
  60.  
  61. return;
  62. }
  63.